The completed program is given below
In the completed program,
the roles of "oldGuess" and of "newGuess" can both be played
by the variable guess
.
class SquareRoot { public static void main( String[] args ) { final double smallValue = 1.0E-14 ; double N = 3.00 ; double guess = 1.00 ; while ( Math.abs( N/(guess*guess) - 1.0 ) > smallValue ) { // calculate a new value for the guess guess = N/(2*guess) + guess/2 ; } System.out.println("The square root of " + N + " is " + guess ) ; } }
Here is the output of the program:
C:JavaLessons\chap19>java SquareRoot The square root of 3.0 is 1.7320508075688772
The last several digits of this output are probably in error since the program only computes 14 decimal places of accuracy.